﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyHocPhi.Model;
using QuanLyHocPhi.BLL;

namespace QuanLyHocPhi.GUI
{
    public partial class FormDangNhap : FormBaseDialog
    {
        #region Thuộc tính
        private NguoiSuDung m_NguoiSuDung = null;
        public NguoiSuDung NguoiSuDung
        {
            get { return m_NguoiSuDung; }
            private set { m_NguoiSuDung = value; }
        }
        #endregion

        public FormDangNhap()
        {
            InitializeComponent();
        }

        private void OnDangNhapClick(object sender, EventArgs e)
        {
            string tenDangNhap = txtTenDangNhap.Text.Trim();
            string matKhau = txtMatKhau.Text;

            if (tenDangNhap.IsNullOrEmpty())
            {
                txtTenDangNhap.Focus();
                DialogUtils.ShowMessage("Vui lòng cung cấp tên đăng nhập!");
                return;
            }

            NguoiSuDung nguoiSuDung = BizNguoiSuDung.GetEntityNguoiSuDung(tenDangNhap, cbxVaiTro.SelectedIndex, matKhau);
            if (nguoiSuDung != null)
            {
                this.NguoiSuDung = nguoiSuDung;
                // Lưu vào Registry
                Registry.SetValue(Registry.Key_TenDangNhap, this.NguoiSuDung.TenDangNhap);
                Registry.SetValue(Registry.Key_VaiTro, this.NguoiSuDung.VaiTro);
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();
            }
            else
            {
                if (matKhau.IsNullOrEmpty() == false)
                    txtMatKhau.Focus();
                DialogUtils.ShowMessage("Tên đăng nhập và/hoặc mật khẩu, vai trò sử dụng không chính xác");
            }
        }

        private void OnTenDangNhapKeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter && txtTenDangNhap.Text.Trim().IsNullOrEmpty() == false)
            {
                e.SuppressKeyPress = true;
                txtMatKhau.Focus();
            }
        }

        private void OnMatKhauKeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                e.SuppressKeyPress = true;
                btnDangNhap.PerformClick();
            }
        }

        private void OnLoad(object sender, EventArgs e)
        {
            //cbxVaiTro.SelectedIndex = NguoiSuDung.VaiTro_TacNghiep;
            txtTenDangNhap.Text = Registry.GetStringValue(Registry.Key_TenDangNhap);
            string stVaiTro = Registry.GetStringValue(Registry.Key_VaiTro);
            if (stVaiTro.IsNullOrEmpty() == false)
            {
                try
                {
                    cbxVaiTro.SelectedIndex = Convert.ToInt32(stVaiTro);
                }
                catch
                {
                    cbxVaiTro.SelectedIndex = NguoiSuDung.VaiTro_TacNghiep;
                }
            }
            else
                cbxVaiTro.SelectedIndex = NguoiSuDung.VaiTro_TacNghiep;

            if (txtTenDangNhap.Text.Trim().IsNullOrEmpty())
                this.ActiveControl = txtTenDangNhap;
            else
                this.ActiveControl = txtMatKhau;
        }

        private void FormDangNhap_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.Alt && e.Shift && e.KeyCode == Keys.F12)
            {
                var frm = new HeThong.FormThietLapChuoiKetNoi()
                {
                    StartPosition = FormStartPosition.CenterScreen,
                    TopMost = true
                };
                frm.ShowDialog();
                frm.Dispose();
                frm = null;
            }
        }

        private void btnDong_Click(object sender, EventArgs e)
        {

        }
    }
}
